package cn.tedu._07springaop.aop;

import org.springframework.stereotype.Component;

@Component//让Spring管理此类，并支持AOP的功能，是实现切面编程的一个前提条件
//与接口实现无关：虽然实现了Calculator，但若未被spring管理，只是一个普通Java对象（POJO），Spring不会对它的方法进行增强处理
public class CalculatorImpl implements Calculator {
    @Override
    public int add(int x, int y) {
        if (x < 0) {
            throw new IllegalArgumentException("参数必须大于0");
        }
        int result = x + y;
        System.out.println("结果为：" + result);
        return result;
    }

    @Override
    public int sub(int x, int y) {
        int result = x - y;
        System.out.println("结果为：" + result);
        return result;
    }

    @Override
    public int mul(int x, int y) {
        int result = x * y;
        System.out.println("结果为：" + result);
        return result;
    }

    @Override
    public int div(int x, int y) {
        int result = x / y;
        System.out.println("结果为：" + result);
        return result;
    }
}
